import { reqGoodsInfo, reqAddOrUpdateShopCart } from "@/api";

const state = {
    goodInfo:{},

}

const mutations={
    GETGOODINFO(state,goodInfo){
        state.goodInfo = goodInfo;
    }
}

const actions = {
    // 获取产品信息的action
    async getGoodInfo({ state, commit, dispatch },skuId){
        let result = await reqGoodsInfo(skuId);
        if(result.code == 200){
            commit('GETGOODINFO',result.data)
        }
    },
    // 将产品添加到购物车中
    async addOrUpdateShopCart({ state, commit, dispatch },{skuId,skuNum}){
        let result = await reqAddOrUpdateShopCart(skuId, skuNum)
        console.log(result);
        // 代表服务器加入购物车成功
        if (result.code == 200) {
            return "ok"
        }else{
            //如果加入购物车失败，返回失败的Promise
            return Promise.reject();
        }
    }
}

// 简化数据
const getters={
    // 路径导航简化的数据
    categoryView(state){
        //起始状态:state.detailInfo起始状态空对象,空对象.categoryView->undefined
        //当服务器数据回来之后state.detailInfo,并非空对象,获取的即为服务器返回的数据{7个K}
        //当前属性值:服务器的数据有值，用服务器的。服务器数据没有回来至少有一个空对象兜底【不能undefined兜底】
        return state.goodInfo.categoryView || {};
    },
    // 简化产品信息数据
    skuInfo(state){
        return state.goodInfo.skuInfo || {};
    },
    // 产品售卖属性的简化
    spuSaleAttrList(state){
        return state.goodInfo.spuSaleAttrList || []
    }
}

//对外暴露
export default {
    state,
    mutations,
    actions,
    getters
}